ExtJS এ Event Listeners এবং Handlers ব্যবহৃত হয় ইউজার ইন্টারঅ্যাকশনে (যেমন: ক্লিক, হোভার, কীবোর্ড ইনপুট ইত্যাদি) রেসপন্স জানাতে। এক্সটিজেএস একটি শক্তিশালী ইভেন্ট সিস্টেম সরবরাহ করে, যা ডেভেলপারদের তাদের অ্যাপ্লিকেশনে ইন্টারঅ্যাকশনের জন্য সহজে ইভেন্ট লিসেনার এবং হ্যান্ডলার কনফিগার করতে দেয়।
Event Listener হলো এমন একটি ফাংশন বা মেথড যা নির্দিষ্ট একটি ইভেন্টের জন্য অপেক্ষা করে এবং সেই ইভেন্টটি ঘটলে এটি ট্রিগার হয়। ExtJS এ, event listeners সাধারণত কম্পোনেন্টে যোগ করা হয়, যেমন বাটন ক্লিক, মাউস মুভ, বা ফর্ম সাবমিটের জন্য।
একটি কম্পোনেন্টের জন্য ইভেন্ট লিসেনার কনফিগার করতে, আপনি listeners
কনফিগারেশন ব্যবহার করতে পারেন, যা কম্পোনেন্টের নির্দিষ্ট ইভেন্টের জন্য ফাংশন নির্ধারণ করে।
উদাহরণ:
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function() {
alert('Button clicked!');
}
}
});
এখানে, click
ইভেন্টের জন্য একটি লিসেনার কনফিগার করা হয়েছে যা বাটনে ক্লিক করলে একটি অ্যালার্ট বক্স প্রদর্শন করবে।
Event Handler হল একটি ফাংশন যা একটি ইভেন্ট ঘটলে তার সাথে সম্পর্কিত কোনো কাজ সম্পন্ন করতে ব্যবহৃত হয়। ExtJS এ, আপনি ইভেন্ট হ্যান্ডলার কনফিগার করে তার ভিতরে যে কোডটি চালাতে চান তা লিখতে পারেন।
handler
কনফিগারেশন ব্যবহার করে আপনি ইভেন্ট হ্যান্ডলার ফাংশন নির্ধারণ করতে পারেন, যা কম্পোনেন্টে ইভেন্ট ঘটলে চালিত হয়।
উদাহরণ:
Ext.create('Ext.Button', {
text: 'Submit',
renderTo: Ext.getBody(),
handler: function() {
alert('Submit button clicked!');
}
});
এখানে, handler
কনফিগারেশন দ্বারা Submit
বাটনের জন্য একটি ইভেন্ট হ্যান্ডলার তৈরি করা হয়েছে, যা বাটনে ক্লিক করলে অ্যালার্ট দেখাবে।
click
, mouseover
, dblclick
ইত্যাদি)।একটি কম্পোনেন্টে একাধিক ইভেন্ট লিসেনার কনফিগার করতে, আপনি listeners
অবজেক্টে একাধিক ইভেন্ট হ্যান্ডলিং ফাংশন যোগ করতে পারেন।
উদাহরণ:
Ext.create('Ext.Button', {
text: 'Click or Hover',
renderTo: Ext.getBody(),
listeners: {
click: function() {
alert('Button clicked!');
},
mouseover: function() {
this.setText('Mouse Over'); // বাটনের লেখা পরিবর্তন
},
mouseout: function() {
this.setText('Click or Hover'); // আবার বাটনের লেখা আগের মতো
}
}
});
এখানে, click
, mouseover
, এবং mouseout
ইভেন্টগুলোর জন্য আলাদা আলাদা লিসেনার কনফিগার করা হয়েছে।
ইভেন্ট লিসেনার এবং হ্যান্ডলার ফাংশনের মধ্যে একটি event
অবজেক্ট পাঠানো হয় যা ইভেন্টের সকল তথ্য ধারণ করে, যেমন ইভেন্টের ধরন, টার্গেট এলিমেন্ট, এবং অন্যান্য প্রাসঙ্গিক তথ্য। এই অবজেক্টটি ইভেন্টের সাথে সম্পর্কিত মেটাডেটা সরবরাহ করে।
উদাহরণ:
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function(event) {
console.log('Event Target:', event.target); // ক্লিক করা এলিমেন্ট দেখাবে
}
}
});
এখানে, event.target
ব্যবহার করে ক্লিক করা এলিমেন্টের তথ্য লগ করা হয়েছে।
ExtJS এ, কিছু ইভেন্ট বাবা-মা কম্পোনেন্টের দিকে "বাবল" (propagate) করে। একে event bubbling বলা হয়। বাবা কম্পোনেন্টে ইভেন্টটি শ্রবণ করার জন্য, আপনি delegate
কনফিগারেশন ব্যবহার করতে পারেন। এটি বিশেষভাবে দরকারি যখন আপনি DOM এর বিভিন্ন স্তরে একই ইভেন্ট হ্যান্ডল করতে চান।
উদাহরণ:
Ext.create('Ext.panel.Panel', {
title: 'Click Event on Panel',
width: 200,
height: 200,
renderTo: Ext.getBody(),
listeners: {
click: {
fn: function() {
alert('Panel clicked!');
},
delegate: '.x-panel-header' // শুধুমাত্র প্যানেলের হেডারে ক্লিক করলে ট্রিগার হবে
}
}
});
এখানে, click
ইভেন্টটি .x-panel-header
এর উপর বাবল হবে এবং প্যানেলের হেডারে ক্লিক করলে ইভেন্টটি ট্রিগার হবে।
এই ইভেন্ট সিস্টেমগুলি এক্সটিজেএস অ্যাপ্লিকেশনে ইউজার ইন্টারঅ্যাকশন সহজে পরিচালনা করতে সাহায্য করে।
Read more